查看原文
其他

Mathematica中偏导数符号的传统描述形式转换

xwmath 考研竞赛数学 2024-04-26

以下内容由WolframBlogs:VitaliyKaurov, Technical Communication & Strategy回答提问给出的答案翻译、改编、整理、扩充,原文请点击文章下面左侧的“阅读原文”. 文章中彩色粗体表达式为输入表达式,执行结果显示为黑色非粗体。

 

在Mathematica中的偏导数的几种描述形式如下:

而它们应该具有的传统描述形式则应该为

一般使用Defer函数可以阻止Mathematica自动计算D,如果借助传统形式描述函数TraditionalFrom可以将求导表达式描述为传统形式,但是对于Derivative求导则会计算。其转换Mathematica表达式为

具体计算效果如下:

由这个结果出现两个问题:

(1) 第二种导数描述不具有传统描述形式;

(2) 第三种不具有最简描述结构。

由于所有的导数的输入的基本结构都为其中的第二种描述形式,即

Derivative[indexs][fname][vars]

其中indexs是求导阶数列表,fname为函数名,vars变量列表

在Mathematica中输入并计算如下表达式


可得各偏导数的输入结构如下:

所以可以构造如下一个统一的函数来解决这样两个问题,函数表达式如下:

它会自动读取Derivative[indexs][fname][vars]中的阶数列表,函数名和变量列表,并自动转换为传统描述形式。其使用方法非常简单,只要将偏导数结果放入该函数作为参数输入就可以了。

例如将上面的三个偏导数结果放入函数,或者在列表后加上//pdConv,则可以得到传统描述形式:

这应该就是我们需要的结构了:

对于这样得到的结果,如果我们将结果复制后重新计算一遍,将去掉pdConv函数中Defer函数赋予的Hold属性,转换为计算形式,将函数f赋予具体的函数,则可以执行导数计算,得到对应的求导结果。如输入

在执行计算时单击“是”按钮,则可得如下结果:

再次输入并计算

得到结果为21600 x2 y2 z4。即对函数g(x,y,z)=x4 y5 z6分别关于x,y,z分别求2,3,2阶偏导数。

这里定义的函数pdConv的作用不仅仅包含了Defer函数的功能,也将显示结果转换为了传统描述形式显示,同时还起到了一定的化简的作用。对于一些不需要简化的Mathematica计算式如果希望将输入显示为传统形式,可以直接使用该函数起到形式转换的目的,不过其作用也就相当于两个命令Defer和TraditionalForm的组合得到的结果。如输入并执行如下两个表达式

它们两个得到的显示结果都一样,都为

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存